// 13. 信号处理

/**
 * 1. #11 signal函数
 *    作用: 用来捕获突发事件
 *    语法: void (*signal (int _SigNum, void(*func)(int)))(int);
 *    注意：使用需要头文件 csignal
 * 
 * 2. raise函数
 *    作用: 生成信号，可以被signal捕获
 *    语法: int raise(int _SigNum);
 *   
 * 扩展：
*/
#include <iostream>

#define __mark 11

#if 11 == __mark

/**
 * #11 signal()函数
*/
// #include <csignal>
#include <signal.h>
#include <unistd.h>

void signalHandler(int signum)
{
  std::cout << "Interrupt singnal(" << signum << ") is received!" << std::endl;
  exit(signum);
}

int main(void)
{
  signal(SIGINT, signalHandler);
  for (;;)
  {
    sleep(1);
    std::cout << "sleep..." << std::endl;
  }
  printf("-----------end-------------\n");
  return 0;
}
#elif 21 == __mark

/**
 * #21
*/

int main(void)
{

  printf("-----------end-------------\n");
  return 0;
}
#endif